Skip to content

Linux: Fixes #15030: Upgrade electron-builder#15043

Draft
personalizedrefrigerator wants to merge 4 commits intolaurent22:devfrom
personalizedrefrigerator:pr/desktop/electron-builder-26-8-1
Draft

Linux: Fixes #15030: Upgrade electron-builder#15043
personalizedrefrigerator wants to merge 4 commits intolaurent22:devfrom
personalizedrefrigerator:pr/desktop/electron-builder-26-8-1

Conversation

@personalizedrefrigerator
Copy link
Copy Markdown
Collaborator

@personalizedrefrigerator personalizedrefrigerator commented Apr 7, 2026

Problem

electron-builder creates AppImages that depend on a deprecated libfuse2 library. This makes the installation process more difficult (users need to install libfuse2). According to #15030, libfuse2 will no longer be included in the Fedora 44 package repository.

Solution

Note

This pull request is a modified version of @JGCarroll's #15032.

Upgrade electron-builder and instruct Electron Builder to use a modern AppImage runtime (see #15032).

Resolves #15030.

Testing

MacOS 26.4 (x86_64)

  • Verified that yarn dist can build a .dmg and .pkg file.
    • Note: I needed to install gettext to build the .pkg file.
  • Verified that the .dmg filesize hasn't significantly increased (current size: 168 MB).
  • Installed the .dmg file.
  • Verified that the Joplin instance installed via .dmg can sync to Joplin Cloud.
  • Verified that default plugins load (e.g. it's possible to create a backup).

Linux: Fedora 43

  • Verified that the .deb and AppImage packages build (yarn dist).
  • Verified that the AppImage size hasn't significantly increased (current size: 204 MB).
  • Verified that the AppImage starts.
  • It's possible to open and edit a note in a new window.
  • It's possible to edit a note in an external editor.

Ubuntu 26.04 beta

AppImage and deb

Build currently doesn't seem to work in Ubuntu 26.04 beta (error: version `GLIBC_2.43' not found (required by basename) while running yarn dist). However, the AppImage and .deb files built on Fedora 43 seem to work:

  • The AppImage can start with ./Joplin-3.6.7.AppImage --no-sandbox.
    • Tested: Opening secondary windows, editing a note.
  • After installing the deb file with sudo dpkg -i ./Joplin-3.6.7.deb (and libxss1 via apt), it's possible to open Joplin from the application menu.
    • Tested: Opening secondary windows, editing a note, printing a note to a file.

Install script

  • Running bash Joplin_install_and_update.sh without libfuse2 installed fails with "Error: Can't get libfuse2 on system, please install libfuse2".
  • When hosting the AppImage locally and patching the install script to use the locally-hosted AppImage,
    • The AppImage downloads successfully (without libfuse2)
    • It's possible to launch the AppImage from the application menu
  • After installing libfuse2t64, reverting the install script patch, and removing the previously-installed AppImage, it's possible to install Joplin 3.5.13. Joplin 3.5.13 can be launched from the application menu.

Windows

  • To-do. Note that testing the Windows installer is particularly important, since this pull request migrates a Windows-specific patch to app-builder-lib.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 7, 2026


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Pr Description Must Follow Guidelines ❌ Error PR description lacks mandatory AI Assistance Disclosure section required by Joplin guidelines, despite including problem statement, solution explanation, and comprehensive testing steps. Add AI Assistance Disclosure section stating whether AI was used in preparing the pull request before merging.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description comprehensively explains the problem (libfuse2 deprecation in Fedora 44), the solution (upgrading electron-builder), and includes extensive testing across macOS, Linux, and Ubuntu platforms.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title specifically references upgrading electron-builder and fixing issue #15030, which aligns with the main objective of upgrading electron-builder to resolve Fedora 44 compatibility. However, the title is narrowly focused on the electron-builder upgrade and omits the critical context of shell script modifications for version-gated libfuse2 checking.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Joplin_install_and_update.sh`:
- Around line 182-197: The libfuse2 gating uses compareVersions with
RELEASE_VERSION which can contain prerelease suffixes (e.g., "3.6.9-pre1")
causing numeric compare failures; sanitize the version before the check by
stripping any prerelease suffix (remove everything after the first '-' from
RELEASE_VERSION) and use that sanitized value in the compareVersions call used
in the libfuse2 block (referencing compareVersions and RELEASE_VERSION), or
alternatively enhance compareVersions to ignore non-numeric patch suffixes;
ensure the sanitized variable is used in the existing libfuse2 check so
prereleases are treated by their core numeric version.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f5a55608-1d2b-402b-a8b2-cbf0fcd22506

📥 Commits

Reviewing files that changed from the base of the PR and between 9e99750 and b4c7a78.

⛔ Files ignored due to path filters (3)
  • .yarn/patches/app-builder-lib-npm-24.13.3-86a66c0bf3.patch is excluded by !**/.yarn/**
  • .yarn/patches/app-builder-lib-npm-26.8.1-e88d27929a.patch is excluded by !**/.yarn/**
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (3)
  • Joplin_install_and_update.sh
  • package.json
  • packages/app-desktop/package.json

Comment thread Joplin_install_and_update.sh
Note: This change addresses issues found by Claude Code during a
review.
@JGCarroll
Copy link
Copy Markdown

JGCarroll commented Apr 7, 2026

Build currently doesn't seem to work in Ubuntu 26.04 beta (error: version `GLIBC_2.43' not found (required by basename) while running yarn dist). However, the AppImage and .deb files built on Fedora 43 seem to work:

Created electron-userland/electron-builder-binaries#147 as this is a problem with the bundled mksquashfs tooling.

Since Joplin releases are built in 22.04 runners, this isn't really a problem from a packaging POV as the AppImage would still be forwards compatible as it currently is. However it does potentially cause friction with contributions from users.

This would mean the toolsets value currently set to 1.0.2 would need updating when upstream releases a new bundle, which itself might need another electron-builder version bump to accept the schema (currently 1.0.2 is the only valid option).

At this point I think it's worth verifying whether the stable 3.5 series AppImage does actually run in Fedora 44 - explicitly confirming Fedora has dropped libfuse2 entirely, before deciding whether to wait for a fix for this ABI incompatibility. The breakage here looks like it would only effect contributors, not end users, so long as the CI keeps running on 22.04, which the CI shows builds fine. If there's no need to urgently change the AppImage we could push this back til the issue above is fixed and the tooling is updated to make use of it.

If Fedora 44 has removed libfuse2 entirely however, then I guess there's a decision to be made to break users or contributors, at least those on Ubuntu 26.04 who would actually run yarn dist specifically.

Edit: I have tested Fedora 44 Workstation in a VM, the urgency of this fix has gone down since installing fuse-libs still includes libfuse2.so - there's functionally no difference to the current status quo. It may be worth drafting this until the upstream issue is resolved. I'll update the relevant issue to make it clear that it's not end the end times just yet :)

@personalizedrefrigerator personalizedrefrigerator changed the title Linux: Fixes #15030: Support Fedora 44: Upgrade electron-builder Linux: Fixes #15030: Upgrade electron-builder Apr 8, 2026
@JGCarroll
Copy link
Copy Markdown

https://github.com/electron-userland/electron-builder/releases/tag/electron-builder%4026.9.0

I'd tried build this branch, changing the electron-builder version to 26.9.0 - this allows then changing the ToolSet version to 1.0.3

Unfortunately, depd is playing up again, and I'm still too Electron newbie to tackle that.

From the release notes for 26.9.0:

fix(appimage): add entry for patched appimage toolset bundle to resolve issues on Ubuntu 25.1.0 by @mmaietta in electron-userland/electron-builder#9673

This looks relevant to our issue above (looking in the Electron-Builder commits, there were some changes to libm before I'd created the issue above), but also

feat(appimage): If necessary, start with --no-sandbox by @sabonerune in electron-userland/electron-builder#9590

This is worth investigating (does it mean we can drop the --no-sandbox logic from the install script as part of this PR?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

desktop All desktop platforms enhancement Feature requests and code enhancements linux v3.7

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AppImage relies on deprecated FUSE2

2 participants